package com.neusoft.classch74.cola;

import java.util.Scanner;

/*
 * 4、 Cola公司的雇员分为以下若干类：(知识点：多态) [必做题]
4.1  ColaEmployee ：这是所有员工总的父类，属性：员工的姓名,员工的生日月份。方法：getSalary(int month) 根据参数月份来确定工资，如果该月员工过生日，则公司会额外奖励100 元。
4.2  SalariedEmployee ：	ColaEmployee 的子类，拿固定工资的员工。属性：月薪
4.3  HourlyEmployee ：ColaEmployee 的子类，按小时拿工资的员工，每月工作超出160 小时的部分按照1.5 倍工资发放。属性：每小时的工资、每月工作的小时数
4.4  SalesEmployee ：ColaEmployee 的子类，销售人员，工资由月销售额和提成率决定。属性：月销售额、提成率
4.5  定义一个类Company，在该类中写一个方法，调用该方法可以打印出某月某个员工的工资数额，
写一个测试类TestCompany,在main方法，把若干各种类型的员工放在一个ColaEmployee 数组里，
并d打印出数组中每个员工当月的工资。

*/
public class Company {
	// 员工数组
	ColaEmployee[] emp;

	// 初始化员工数组
	public void initializeEE() {
		// 员工信息
		// 员工姓名变量
		String name;
		// 员工出生月份
		int month;
		// 固定工资
		double mSalary;
		// 小时工资
		double hourSalary;
		// 工时
		int hours;
		// 销售额
		double sales;
		// 提成
		double rate;

		// 统计各种员工数量
		Scanner sc = new Scanner(System.in);
		System.out.println("录入员工信息：");
		System.out.println("请输入领取固定工资的员工总数：");
		int salaryEENum = sc.nextInt();
		System.out.println("请输入领取工时工资的员工总数：");
		int hourlyEENum = sc.nextInt();
		System.out.println("请输入领取销售工资的员工总数：");
		int salesEENum = sc.nextInt();

		// 初始化数组
		int empNum = salaryEENum + hourlyEENum + salesEENum;
		emp = new ColaEmployee[empNum];

		System.out.println("请输入领取固定工资的员工信息：");
		// for循环遍历数组，并赋值
		for (int i = 0; i < salaryEENum; i++) {
			System.out.println("第" + (i + 1) + "个领取固定工资的员工姓名：");
			name = sc.next();
			System.out.println("出生月份");
			month = sc.nextInt();
			System.out.println("固定工资");
			mSalary = sc.nextDouble();
			// 初始化数组元素
			emp[i] = new SalariedEmployee(name, month, mSalary);
		}

		System.out.println("请输入领取工时工资的员工信息：");
		for (int i = salaryEENum; i < salaryEENum + hourlyEENum; i++) {
			System.out.println("第" + (i + 1) + "个领取工时工资的员工姓名：");
			name = sc.next();
			System.out.println("出生月份");
			month = sc.nextInt();
			System.out.println("工时工资");
			hourSalary = sc.nextDouble();
			System.out.println("当月工时");
			hours = sc.nextInt();
			// 初始化数组元素
			emp[i] = new HourlyEmployee(name, month, hourSalary, hours);
		}

		System.out.println("请输入领取销售工资的员工信息：");
		for (int i = salaryEENum + hourlyEENum; i < empNum; i++) {

			System.out.println("第" + (i + 1) + "个领取销售工资的员工姓名：");
			name = sc.next();
			System.out.println("出生月份");
			month = sc.nextInt();
			System.out.println("当月销售额");
			sales = sc.nextDouble();
			System.out.println("提成率");
			rate = sc.nextDouble();
			// 初始化数组元素
			emp[i] = new SalesEmployee(name, month, sales, rate);
		}
	}

	public void printAllSalary(int month) {
		for (int i = 0; i < emp.length; i++) {
			emp[i].printSalary(month);
		}
	}

}
